iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0

取捨,只是選擇當下最合適的策略。

CI/CD 降低了很多工程師在例行事務的時間,但難免有些流程中,其實拿出來獨立使用手動操作會更好。就像前幾篇所說的,要有備案。備案除了在其他裝置重新建立 Jenkins 環境,還有一種就是把重要的流程寫成腳本。拉掉 CI/CD 流程,仍然可以獨立執行。

若是在 CI/CD Pipeline 腳本當中,在 Android 發版流程簡化示意如下:

pipeline {
  stage('Env Setup') {
		'sh ./gradlew clean'
		'sh ./gradlew build'
	}

	stage('Generate APK') {
		'sh ./gradlew testDebug'
	}

	stage('Upload APK') {
		'sh ./gradlew appDistributionUploadTestDebug'
	}
}

如果之後如果想要自己本機發版的話,就要從 Jenkinsfile 當中把每個流程自行複制,然後一個執令結束之後,再複制下一個指令。對工程師來說自行發版會發生的痛點其實蠻多的,所以如果再將上述 Pipeline 的內容寫在 Shell Script 當中的話,其實就是下方的內容:

./gradlew clean
./gradlew build
./gradlew assasmble testDebug
./gradlew appDistributionUploadTestDebug

而將 Pipeline 腳本再進行改寫,示意如下:

pipeline {
  stage('Generate APK') {
		'sh ReleaseDebugApk.sh'
	}
}

當 stage 只剩下一個之後,在查看這個 Job 的流程只會有一個流程,相較前一個會透露更多的流程。這是一種取捨,在 Jenkins 上會看到比較少的流程流動,但是可以兼顧手動以及自動化。


上一篇
建置 CI/CD 解決痛點,但也會製造維護成本
下一篇
設計你的 Android App CI/CD 流程(1/3):開發團隊準備好了嗎?
系列文
Android 工程師的 CI/CD 之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言